/**
 *
* 列表型数据 -> 树形数据
* params list 列表数据 rootValue 根节点 / 根部门 -> 传智教育
* */
export function translateListToTreeData(list, rootValue) {
  // [
  //   {
  //     name: '传智教育', // 一级
  //     children: [
  //       {
  //         name: '财务部', // 二级
  //         children: [xxxx]
  //       },
  //       {
  //         name: '行政部' // 二级
  //       },
  //       {
  //         name: '总裁办' // 二级
  //       }
  //     ]
  //   }
  // ]
  const arr = [] // 树形数据
  // 核心逻辑: 遍历列表数据 -> 递归思想 -> 找规律 -> 生成树形数据
  list.forEach(item => {
    // 1. 找到根部门 -> 先确定一级 / 再确定二级 / ...
    // console.log(item)
    if (item.pid === rootValue) {
      // console.log('根部门', item)
      // 2. TODO 根据规律查找二级 / 三级 / 四级....
      // 递归特点:自己调用自己,必须要有出口/结束条件
      // 递归场景:一般用来处理未知层级的数据
      // 查找原则:通过父组件找子级->传入父级部门的id->子级的pid和父级id一致
      const children = translateListToTreeData(list, item.id)
      if (children.length) item.children = children
      arr.push(item)
    }
  })
  return arr // 返回转换成功后的树形数据
}
